package com.itheima.sh.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @Description:
 * @Version: V1.0
 */
@Data //注在类上，提供类的get、set、equals、hashCode、canEqual、toString方法
@NoArgsConstructor  //条件构造器查询3的注解  提供类的无参构造
@AllArgsConstructor//条件构造器查询3的注解  提供类的全参构造
@TableName("tb_user") // 标识实体类与表的关系，如果数据库表名和实体类名称一致 则可省略
@Builder  //类生成相对略微复杂的构建器API  初始化你的实例对象：
public class User {
    //    @TableId标识数据库的主键列;处理主键生成策略
    //     * 数据库ID自增
    //     * <p>该类型请确保数据库设置了 ID自增 否则无效</p>
    //    AUTO(0),
    //     * 该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
    //    NONE(1),
    //     * 用户输入ID
    //     * <p>该类型可以通过自己注册自动填充插件进行填充</p>
    //    INPUT(2),
    //    /* 以下3种类型、只有当插入对象ID 为空，才自动填充。 */
    //     * 分配ID (主键类型为number或string）,
    //    ASSIGN_ID(3),
    //     * 分配UUID (主键类型为 string)
    @TableId(type = IdType.INPUT)
    private Long id;
    private String userName;//Mybaties默认为驼峰命名
    private String password;

    //注意数据库的name。如果要改 添加
    @TableField("t_name")
    private String name;

    private Integer age;
    private String email;


    //
//    // @TableField(exist = false) 不希望该值存入数据库
//     @TableField(exist = false)
//     private String address;
}
